Retail stores have used point of sale terminals with optical code scanners for years to process purchase transactions. The use of an optical code scanner to identify an item by reading an optical code on an item has increased the speed of processing items for purchase. However, over the years numerous methods have been developed to make fraudulent purchases of items scanned by an optical code scanner that only identifies an item by the optical code attached to the item. Attempts to mitigate the fraud include processing an image of items to identify the items instead of relying solely on the optical code for identification. However, current product identification processes that uniquely identify an item from an image of the item are very computational and memory intensive. The number of possible known items, to compare an unknown item against, can easily exceed 100,000 items. Current identification techniques compare image data for an unknown item to each known item where the image data can include 100,000 bytes of data. This requires a very large database to store the data for the known items and a large amount of processing power to search through the data for known items to find a match for the unknown item